1. Field of the Invention
This invention relates to computer software for backing up and restoring computer system files. More particularly, the invention relates to a system and method for efficiently restoring a file by splitting the file into segments and restoring only the segments that differ from a backup version of the file.
2. Description of the Related Art
Computer systems generally store information as files managed by a file system. Each file may be stored on a storage device, such as a disk drive, optical drive, tape drive, flash memory device, etc. It is often necessary to backup files by copying them to another storage device. For example, backup operations may be performed to guard against hardware failure or data loss, to provide a snapshot of files at a particular point in time, or to replicate files for other purposes.
In a networked computing environment, a plurality of client computer systems may each backup files to a backup server computer system. It is possible that an identical file is stored on multiple client computer systems. For example, two or more client computer systems may each store a copy of a file, where the data in each copy is identical. For example, client computer systems that execute the same operating system or the same software applications often have many identical files.
De-duplication techniques can be utilized so that only a single copy of each file is stored on the backup server computer system. For example, for each client computer system that has a copy of a particular file, the backup server computer system may store respective file metadata representing that copy. The portions of file metadata associated with each respective copy of the file may all reference a single instance of the file data (the actual contents of the file). In this way, the backup system can avoid the need to store multiple copies of identical files on the backup server computer system. A storage system which uses de-duplication to store and reference a single instance of data in order to avoid storing multiple copies of identical data is generally referred to as a single instance storage system.